Riqueza de mamíferos en regiones socioeconómicas

Autor/a

Allan Marín Campos y Ainoha Jimenez Zamora

Introducción

Los mamíferos son una clase de vertebrados endotérmicos (de sangre caliente) que se caracterizan por poseer glándulas mamarias, pelo o pelaje y, generalmente, por dar a luz crías vivas. Son un grupo diverso que incluye animales tan conocidos como los perros, gatos, elefantes, ballenas, delfines, leones, monos y humanos, entre otros.

Este trabajo propone presentar una variedad de estadísticas que ilustran la distribución de mamiferos en diversos territorios, así como su relevancia en las diferentes regiones socioeconómicas de Costa Rica.

La informacion fue obtenida de Regiones socioeconómicas de Costa Rica contenidas en el Atlas Digital de Costa Rica 2014, por el autor Edgar Ortiz Malavasi y tambien de Registros de presencia de mamíferos de Costa Rica obtenidos a través de una consulta al portal de datos de GBIF.

Atlas Digital

GBIF

Carga de paquetes

Código
library(tidyverse)
library(devtools)
library(DT)
library(sf)
library(rgdal)
library(raster)
library(leaflet)
library(leaflet.extras)
library(leafem)
library(viridis)
library(ggplot2)
library(plotly)

Carga de datos

Código
areas <-
  st_read(
    "regiones_socioeconomicas_simp_10m.geojson.txt",
    quiet = TRUE # evita el despliegue de mensajes
  )

mamiferos <-
  st_read(
    "mamiferos.csv",
    options = c(
      "X_POSSIBLE_NAMES=decimalLongitude", # longitud decimal
      "Y_POSSIBLE_NAMES=decimalLatitude"   # latitud decimal
    ),
    quiet = TRUE
  )

areas <-
  areas |>
  st_transform(4326)

st_crs(mamiferos) <- 4326

Uniones

Código
mamiferos_union_region <-
  st_join(
    x = mamiferos,
    y = dplyr::select(areas, region),
    join = st_within
  )
Código
riqueza_especies_mamiferos <-
  mamiferos_union_region |>
  st_drop_geometry() |>
  group_by(region) |>
  summarise(riqueza_especies_mamiferos = n_distinct(species, na.rm = TRUE))
Código
region_union_riqueza <-
  left_join(
    x = areas,
    y = riqueza_especies_mamiferos,
    by = "region"
  ) |>
  replace_na(list(riqueza_especies_mamiferos = 0))

Mapa de riqueza de especies de mamíferos en regiones socioeconómicas de Costa Rica

Código
# Paleta de colores de riqueza de mamiferos
colores_riqueza_especies <-
  colorNumeric(
    palette = "Purples",
    domain = region_union_riqueza$riqueza_especies_mamiferos,
    na.color = "transparent"
  )

# Paleta de colores de especies
colores_especies <- colorFactor(
  palette = viridis(length(unique(mamiferos$species))), 
  domain = mamiferos$species
)

# Mapa leaflet
leaflet() |>
  setView(
    lng = -84.19452,
    lat = 9.572735,
    zoom = 7) |>
  addTiles(group = "Mapa general (OpenStreetMap)") |>
  addProviderTiles(
    providers$Esri.WorldImagery, 
    group = "Imágenes satelitales (ESRI World Imagery)"
  ) |> 
  addPolygons(
    data = region_union_riqueza,
    fillColor = ~ colores_riqueza_especies(region_union_riqueza$riqueza_especies_mamiferos),
    fillOpacity = 0.8,
    color = "black",
    stroke = TRUE,
    weight = 1.0,
    popup = paste(
      paste("<strong>Riqueza de mamiferos:</strong>", region_union_riqueza$riqueza_especies_mamiferos),
      sep = '<br/>'
    ),
    group = "Riqueza de mamiferos"
  ) |>
  addScaleBar(
    position = "bottomleft", 
    options = scaleBarOptions(imperial = FALSE)
  ) |>    
  addLegend(
    position = "bottomleft",
    pal = colores_riqueza_especies,
    values = region_union_riqueza$riqueza_especies_mamiferos,
    group = "Riqueza de mamiferos",
    title = "Riqueza de mamiferos"
  ) |>
  addCircleMarkers(
    data = mamiferos,
    stroke = F,
    radius = 4,
    fillColor = ~colores_especies(mamiferos$species),
    fillOpacity = 1.0,
    popup = paste(
      paste0("<strong>Especie: </strong>", mamiferos$species),
      paste0("<strong>Localidad: </strong>", mamiferos$locality),
      paste0("<strong>Fecha: </strong>", mamiferos$eventDate),
      paste0("<strong>Fuente: </strong>", mamiferos$institutionCode),
      paste0("<a href='", mamiferos$occurrenceID, "'>Más información</a>"),
      sep = '<br/>'
    ),    
    group = "Registros de presencia"
  ) |>  
  addLayersControl(
    baseGroups = c(
      "Mapa general (OpenStreetMap)", 
      "Imágenes satelitales (ESRI World Imagery)"
    ),
    overlayGroups = c(
      "Riqueza de mamiferos",
      "Registros de presencia"
    )
  ) |>
  addResetMapButton() |>
  addSearchOSM() |>
  addMouseCoordinates() |>
  addFullscreenControl() |>
  hideGroup("Registros de presencia") 

Tabla de riqueza de mamíferos en regiones socioeconómicas

Código
riqueza_especies_mamiferos |>
  dplyr::select(region, riqueza_especies_mamiferos) |>
  datatable(
    colnames = c("Nombre de la región socioeconómica", "Riqueza de especies de mamíferos"),
    options = list(
      pageLength = 5,
      language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
    ))

Gráficos estadísticos

Gráfico de barras de especies por región socioeconómica

Código
grafico_mamiferos_region <-
riqueza_especies_mamiferos |>
  ggplot(aes(x = reorder(region,-riqueza_especies_mamiferos), y = riqueza_especies_mamiferos)) +
  geom_bar(stat = "identity", position = "dodge") +
  ggtitle("Riqueza de mamíferos en regiones socioeconómicas") +
  xlab("Regiones socioeconómicas") +
  ylab("Riqueza de mamíferos")+
  labs(caption = "Fuente: Ministerio de Planificación (MIDELAN)") +
  theme_gray() +
  theme(axis.text.x = element_text(angle = 90, hjust = 1))

ggplotly(grafico_mamiferos_region)

Gráfico de barras de cantidad de registros de presencia de Bradypus variegatus (perezoso de tres dedos) desde 2000 hasta 2023

Código
perezosos_3dedos <-
mamiferos_union_region |>
  filter(year >= 2000) |>
  filter(species == "Bradypus variegatus") |>
  ggplot(aes(x = year)) +
  geom_bar() +
  ggtitle("Registro de presencia del Bradypus variegatus (perezoso de tres dedos) 
desde el año 2000 hasta el 2023.") +
  xlab("Año") +
  ylab("Cantidad de perezosos de tres dedos") +
  theme_gray()

ggplotly(perezosos_3dedos)